package com.hz.tgb.image;

import com.hz.tgb.common.StringUtil;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Arrays;

/**
 * 根据左上角坐标和右下角坐标裁剪图片
 *
 * @author hezhao on 2019/4/19 20:40
 */
public class ImagePointCutUtils {

	// ImageIO 支持的图片类型 : {"jpg", "tiff", "pcx", "bmp", "gif", "png", "raw", "pnm", "tif", "wbmp", "jpeg", "jbig2"}
	private static String types = Arrays.toString(ImageIO.getReaderFormatNames()).replace("]", ",");

	/** 根据坐标裁剪图片
	 * @param sourceFilePath 要裁剪的图片地址
	 * @param targetFilePath 图片保存地址
	 * @param startX 左上角X轴坐标
	 * @param startY 左上角Y轴坐标
	 * @param endX 右下角X轴坐标
	 * @param endY 右下角Y轴坐标
	 * @return
	 */
	public static void cutImage(String sourceFilePath, String targetFilePath,
								int startX, int startY, int endX, int endY) throws IOException {
		cutImage(new File(sourceFilePath), targetFilePath, startX, startY, endX, endY);
	}

	/** 根据坐标裁剪图片
	 * @param file 要裁剪的图片文件
	 * @param targetFilePath 图片保存地址
	 * @param startX 左上角X轴坐标
	 * @param startY 左上角Y轴坐标
	 * @param endX 右下角X轴坐标
	 * @param endY 右下角Y轴坐标
	 * @return
	 */
	public static void cutImage(File file, String targetFilePath,
								int startX, int startY, int endX, int endY) throws IOException {
		BufferedImage sourceImage = ImageIO.read(file);
		cutImage(sourceImage, targetFilePath, startX, startY, endX, endY);
	}

	/** 根据坐标裁剪图片
	 * @param sourceImage 要裁剪的图像
	 * @param targetFilePath 图片保存地址
	 * @param startX 左上角X轴坐标
	 * @param startY 左上角Y轴坐标
	 * @param endX 右下角X轴坐标
	 * @param endY 右下角Y轴坐标
	 * @return
	 */
	public static void cutImage(BufferedImage sourceImage, String targetFilePath,
								int startX, int startY, int endX, int endY) {
		BufferedImage result = cutImage(sourceImage, startX, startY, endX, endY);
		try {
			String suffixName = getSuffixName(targetFilePath);
			ImageIO.write(result, suffixName, new FileOutputStream(targetFilePath));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/** 根据坐标裁剪图片
	 * @param sourceImage 要裁剪的图像
	 * @param startX 左上角X轴坐标
	 * @param startY 左上角Y轴坐标
	 * @param endX 右下角X轴坐标
	 * @param endY 右下角Y轴坐标
	 * @return
	 */
	public static BufferedImage cutImage(BufferedImage sourceImage,
										 int startX, int startY, int endX, int endY) {
		if (sourceImage == null) {
			throw new RuntimeException("图片信息为空");
		}
		int width = sourceImage.getWidth();
		int height = sourceImage.getHeight();
		if (startX == -1) {
			startX = 0;
		}
		if (startY == -1) {
			startY = 0;
		}
		if (endX == -1) {
			endX = width - 1;
		}
		if (endY == -1) {
			endY = height - 1;
		}
		BufferedImage result = new BufferedImage(endX - startX, endY - startY, 4);
		for (int x = startX; x < endX; ++x) {
			for (int y = startY; y < endY; ++y) {
				int rgb = sourceImage.getRGB(x, y);
				result.setRGB(x - startX, y - startY, rgb);
			}
		}
		return result;
	}

	/** 根据坐标裁剪Base64图片
	 * @param base64string 要裁剪的图片Base64字符串
	 * @param suffixName 后缀名
	 * @param startX 左上角X轴坐标
	 * @param startY 左上角Y轴坐标
	 * @param endX 右下角X轴坐标
	 * @param endY 右下角Y轴坐标
	 * @return
	 */
	public static String cutBase64Image(String base64string, String suffixName,
										int startX, int startY, int endX, int endY) {
		// base64转bufferedImage
		BufferedImage bufferedImage = getBufferedImage(base64string);
		BufferedImage result = cutImage(bufferedImage, startX, startY, endX, endY);
		ByteArrayOutputStream baos = new ByteArrayOutputStream();// io流
		try {
			ImageIO.write(result, suffixName, baos);
			// 写入流中
			byte[] bytes = baos.toByteArray(); // 转换成字节
			BASE64Encoder encoder = new BASE64Encoder();
			String img_base64 = encoder.encodeBuffer(bytes).trim(); // 转换成base64串
			img_base64 = img_base64.replaceAll("\n", "").replaceAll("\r", ""); // 删除 \r\n
			// 前面拼上前缀
			img_base64 = "data:image/"+suffixName+";base64,"+img_base64;
			return img_base64;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return "";
	}

	/** base64String 转 BufferedImage
	 * @param base64string
	 * @return BufferedImage
	 */
	public static BufferedImage getBufferedImage(String base64string) {
		BufferedImage image = null;
		try {
			InputStream stream = baseToInputStream(base64string);
			image = ImageIO.read(stream);
			System.out.println(">>>" + image.getWidth() + "," + image.getHeight() + "<<<");
		} catch (IOException e) {
			e.printStackTrace();
		}
		return image;
	}

	/**
	 * base64string 转 inputStream
	 * @param base64string
	 * @return
	 */
	public static InputStream baseToInputStream(String base64string) {
		ByteArrayInputStream stream = null;
		try {
			BASE64Decoder decoder = new BASE64Decoder();
			byte[] bytes1 = decoder.decodeBuffer(base64string);
			stream = new ByteArrayInputStream(bytes1);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return stream;
	}

	/**
	 * 获取图片后缀名
	 * @param fileName 文件名
	 * @return
	 */
	public static String getSuffixName(String fileName) {
		if (StringUtil.isBlank(types)) {
			types = "jpg,tiff,pcx,bmp,gif,png,raw,pnm,tif,wbmp,jpeg,jbig2,";
		}

		String suffix = fileName;
		// 获取图片后缀
		if(fileName.contains(".")) {
			suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
		}
		// 类型和图片后缀全部小写，然后判断后缀是否合法
		if(suffix.trim().length() == 0 || !types.toLowerCase().contains(suffix.toLowerCase() + ",")){
			throw new RuntimeException("Sorry, the image suffix [" + suffix + "] is illegal. the standard image suffix is {}." + types);
		}
		return suffix;
	}

	/**
	 * 检查图片后缀名是否是图像
	 * @param fileName 文件名
	 * @return
	 */
	public static boolean checkSuffixName(String fileName) {
		if (StringUtil.isBlank(types)) {
			types = "jpg,tiff,pcx,bmp,gif,png,raw,pnm,tif,wbmp,jpeg,jbig2,";
		}

		String suffix = fileName;
		// 获取图片后缀
		if(fileName.contains(".")) {
			suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
		}
		// 类型和图片后缀全部小写，然后判断后缀是否合法
		if(suffix.trim().length() == 0 || !types.toLowerCase().contains(suffix.toLowerCase() + ",")){
			return false;
		}
		return true;
	}

	public static void main(String[] args) throws IOException {
		// 试一试
		// cutImage("D:/a.jpg", "D:/cut_img.jpg", 323, 0, 1658, 1225);

		// base64
//		String base64 = "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";
//		String cutBase64 = cutBase64Image(base64, "jpeg", 319, 92, 394, 167);
//		System.out.println(cutBase64);
	}

}
